﻿using System;
using System.IO;

namespace CRM.Database.Model
{
    public partial class Contracts : IGetKeyValue, ISetChangedUser
    {
        #region Implementation of IGetKeyValue

        /// <summary>
        /// Получение ключего значения элемента
        /// </summary>
        /// <returns>Ключевое значение</returns>
        public int GetKeyValue()
        {
            return IdContract;
        }

        #endregion

        #region Implementation of ISetChangedUser

        /// <summary>
        /// Установка пользователя, который сделал изменение
        /// </summary>
        /// <param name="userLogin">Логин пользователя</param>
        public void SetChangedUser(string userLogin)
        {
            if (string.IsNullOrEmpty(userLogin))
                throw new Exception("Логин пользователя не должен быть пустым");

            IdUser = userLogin;
        }

        #endregion

        //public int IdLegalEntity
        //{
        //   // get { return 9886; }
        //   get
        //   {
        //       if (AgreementElements != null)
        //           return AgreementElements.IdLegalEntity;
        //       return 0;
        //   }
        //    set {  }
        //}

        public string LegalEntityName
        {
            get
            {
                if (AgreementElements != null)
                {
                    return AgreementElements.LegalEntityName;
                }
                return "";
            }
        }

        public string ContractTypeNameLocalized
        {
            get { return ContractsTypes.GetLocalizedName(); }
        }

        public string ContractStatusNameLocalized
        {
            get { return ContractsStatuses.LocalizedName; }
        }


        public string CustomerFullName
        {
            get { return AgreementElements.LegalEntities.Name; }
        }

        public string OwnerShipPatternName
        {
            get { return AgreementElements.LegalEntities.OwnershipPatterns.NameRu; }
        }

        public string OwnerShipPatternShortName
        {
            get { return AgreementElements.LegalEntities.OwnershipPatterns.NameShortRu; }
        }

        /// <summary>
        /// Название файла контракта
        /// </summary>
        public string ContractLink
        {
            get
            {
                var col = new ConfigurationsCollection();

                return col.ContractsPath + @"\Contract" + IdContract + ".doc";
            }
        }

        public string ScanLink
        {
            get
            {
                var col = new ConfigurationsCollection();

                string path = col.ContractsScanPath + @"\ContractScan" + IdContract + ".pdf";

                if (File.Exists(path))
                    return path;
                return "";
            }
        }
    }
}